home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet multimedia / Linux LiveCD / GeeXboX 1.0 EN / geexbox-1.0-en.i386.iso / GEEXBOX / etc / init.d / 32_tvcard < prev    next >
Text File  |  2006-06-21  |  2KB  |  84 lines

  1. #!/bin/sh
  2. #
  3. # setup tv cards
  4. #
  5. # runlevels: geexbox, debug, install
  6.  
  7. echo "### Setting up TV card ###"
  8.  
  9. if ! grep -q 'Class 0400:.*109e:' /proc/pci &&
  10.    ! grep -q 'Class 0480:.*1131:' /proc/pci &&
  11.    ! grep -q 'Class 0480:.*14f1:88' /proc/pci; then
  12.   # No supported TV card found
  13.   exit 1
  14. fi
  15.  
  16. . /etc/tvcard
  17. [ -f /etc/radio ] && . /etc/radio
  18.  
  19. CARD=
  20. test "$TV_CARD" != "AUTO" && CARD="card=$TV_CARD"
  21. TUNER=
  22. test "$TV_TUNER" != "AUTO" && TUNER="tuner=$TV_TUNER"
  23. RADIO_OPT=
  24. test "$RADIO" = yes && RADIO_OPT="radio=1"
  25.  
  26. if grep -q 'Class 0400:.*109e:' /proc/pci; then
  27.   # BT8x8 Card
  28.   modprobe bttv $CARD $TUNER $RADIO_OPT >/dev/null 2>&1
  29.  
  30.   if test "$TV_CARD" = "AUTO" \
  31.        -a -z "`dmesg | grep 'bttv0: detected'`"; then
  32.     # Not autodetected
  33.     test -z "$TUNER" && TUNER="tuner=3"
  34.     rmmod bttv
  35.     modprobe bttv card=1 $TUNER $RADIO_OPT >/dev/null 2>&1
  36.   fi
  37.  
  38.   echo "TV_WIDTH=768" > /var/tvcard
  39.   echo "TV_HEIGHT=576" >> /var/tvcard
  40. elif grep -q 'Class 0480:.*1131:' /proc/pci; then
  41.   # SAA7134 Card
  42.   modprobe saa7134 $CARD $TUNER >/dev/null 2>&1
  43.  
  44.   echo -n "" > /var/tvcard
  45. elif grep -q 'Class 0480:.*14f1:88' /proc/pci; then
  46.   # Conexant BT881/CX88 Card
  47.   modprobe tveeprom >/dev/null 2>&1
  48.   modprobe cx88xx $CARD $TUNER >/dev/null 2>&1
  49.   modprobe cx8800 >/dev/null 2>&1
  50.  
  51.   # cx8800 module tries to autodetect/force tuner model according to eeprom.
  52.   # It fails if eeprom is corrupted so force tuner module loading before cx8800
  53.   if test "$TV_CARD" != "AUTO" \
  54.        -a -n "`dmesg | grep 'tveeprom: Encountered bad packet header'`"; then
  55.     rmmod cx8800 cx88xx tuner
  56.     modprobe cx88xx $CARD $TUNER >/dev/null 2>&1
  57.     modprobe tuner >/dev/null 2>&1
  58.     modprobe cx8800 >/dev/null 2>&1
  59.   fi
  60.  
  61.   echo "TV_WIDTH=768" > /var/tvcard
  62.   echo "TV_HEIGHT=576" >> /var/tvcard
  63.  
  64.   # CX88 driver reset color values to 0, so need to be forced.
  65.   echo "TV_BRIGHTNESS=50" >> /var/tvcard
  66.   echo "TV_CONTRAST=50" >> /var/tvcard
  67.   echo "TV_HUE=100" >> /var/tvcard
  68.   echo "TV_SATURATION=75" >> /var/tvcard
  69. fi
  70.  
  71. TVIN_OPT=
  72. if test -n "$TVIN_STANDARD" -a -n "$TVIN_SUB_STANDARD"; then
  73.   TVIN_OPT="$TVIN_STANDARD=$TVIN_SUB_STANDARD"
  74. fi
  75.  
  76. modprobe tuner $TVIN_OPT >/dev/null 2>&1
  77. modprobe tvaudio >/dev/null 2>&1
  78. modprobe msp3400 >/dev/null 2>&1
  79. modprobe tda7432 >/dev/null 2>&1
  80. modprobe tda9875 >/dev/null 2>&1
  81. modprobe tda9887 $TVIN_OPT >/dev/null 2>&1
  82.  
  83. exit 0
  84.